home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Franz PD / Franz PD Disk #002 (19xx)(Amiga User Group Deutschland e.V.).zip / Franz PD Disk #002 (19xx)(Amiga User Group Deutschland e.V.).adf / Trails / DecodeMenu.mod < prev    next >
Text File  |  1986-10-22  |  1KB  |  51 lines

  1. (*
  2.     This file contains procedures that extract menu,
  3.     item and subitem numbers from the code returned by
  4.     Intuition. This works with V1.1
  5.     See Intuition Manual V1.1 pages 6-9..6-12
  6.     
  7.     Created: 5/25/86 by Richie Bielak
  8.     
  9.     Modified:
  10.  
  11.     Copyright (c) 1986 by Richard Bielak
  12.     
  13.     This program may be freely copied, but please
  14.     leave my name in. Thanks.....Richie
  15.  
  16. *)
  17. IMPLEMENTATION MODULE DecodeMenu;
  18.  
  19. TYPE
  20.   ShortSet = SET OF [0..15];
  21.  
  22. (* ++++++++++++++++++++++++++++ *)
  23. (* Extract menu number          *)
  24. PROCEDURE MenuNumber (code : CARDINAL) : CARDINAL;
  25.   BEGIN
  26.     (* Zero out everything, but the lower 5 bits *)
  27.     RETURN CARDINAL (ShortSet (code) * ShortSet (01FH))
  28.   END MenuNumber;
  29.  
  30. (* ++++++++++++++++++++++++++++ *)
  31. (* Extract item number.         *)
  32. PROCEDURE ItemNumber (code : CARDINAL) : CARDINAL;
  33.   BEGIN
  34.     (* Shift right by 5 positions *)
  35.     code := code DIV 20H;
  36.     (* Zero out, all but lower 6 bits *)
  37.     RETURN CARDINAL (ShortSet (code) * ShortSet (03FH));
  38.   END ItemNumber;
  39.  
  40. (*+++++++++++++++++++++++++*)
  41. (* Extract Sub-item number *)
  42. PROCEDURE SubItemNumber (code : CARDINAL) : CARDINAL;
  43.   BEGIN
  44.     (* Shift right by 11 bits *)
  45.     code := code DIV 400H;
  46.     (* Zero out all, but lower 5 bits *)
  47.     RETURN CARDINAL (ShortSet (code) * ShortSet (01FH));
  48.   END SubItemNumber;
  49.  
  50. END DecodeMenu.
  51.